def get_the_first_and_last_element(user_list):
user_list = user_list.copy()
user_list[0] = 'steven'
return (user_list[0], user_list[len(user_list) - 1])
user_list = ['jack', 'tom', 'toby', 'marry', 'amy']
(first_element, last_element) = get_the_first_and_last_element(user_list)
#steven, amy
#['jack', 'tom', 'toby', 'marry', 'amy']
print(first_element, last_element)
print(user_list)
global函數
一、函式內區域變數修改不影響全域變數即便變數命名相同:
number_var = 10
def my_global_var_function():
number_var = 7
# 印出區域變數 7
print(number_var)
my_global_var_function()
# 函式內修改的是區域變數,執行完後 number_var 印出仍是 10
print(number_var)
三、若於函式中宣告變數為 global 關鍵字全域變數,則修改該變數指定的物件則會更動到全域變數:
number_var = 10
# 10
print(number_var)
def my_global_var_function():
# 在函式內宣告 number_var 使用的是全域變數
global number_var
# 修改全域變數為 7
number_var = 7
print(number_var)
my_global_var_function()
# 7
print(number_var)
四、綜合範例:
# 宣告在函式外面的全域變數
number_var = 10
def my_local_var_function():
number_var = 23
print(number_var)
# 印出區域變數 23
my_local_var_function()
# 印出全域變數 10,不受影響
print(number_var)
def my_global_var_function():
global number_var
# 印出全域變數 10
print(number_var)
# 修改全域變數
number_var = 7
# 7
print(number_var)
my_global_var_function()
# 全域變數被修改成 7
print(number_var)
range():range 可以產生可迭代物件,讓我們可使用迴圈來取出序列值。透過 list(range()) 可以將 range 物件轉成 list 容器物件。
nums = range(1, 11)
print(list(nums))
執行結果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
max()、min():
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(max(nums))
print(min(nums))
執行結果:
# 最大值
10
# 最小值
1
自訂類別
除了內建的類別外,我們也可以自訂類別。讓我們的程式更加模組化和更好的重複使用和維護(尤其是未來如果你有開發複雜的應用或是遊戲時就會運用到類似的觀念和方法:物件導向程式設計)。可以想成 class 類別是物件的製造機,創建物件的過程又稱實例化(透過 class 產生 instance)。
假設我們是一個電子商務平台的軟體工程師,我們今天要設計一個產品的類別,讓產品物件可以都具備某屬性和可以使用的方法(函式),這樣一來不同商品就可以運用同一個類別產生和使用同一份程式碼:
class Product:
# __init__ 為定義的初始化物件屬性值的設定方式
# self 代表該物件, 傳入參數會給該物件屬性 self.屬性
def __init__(self, name, price):
self.name = name
self.price = price
新增方法(讓物件可以使用):
class Product:
# __init__ 為定義的初始化物件屬性值的設定方式
# self 代表該物件, 傳入參數會給該物件屬性 self.屬性
def __init__(self, name, price):
self.name = name
self.price = price
def get_discount_price(self, discount_rate):
"""
參數傳入折扣率,回傳該商品回傳
"""
return self.price * discount_rate
物件實例化(透過類別產生物件,可以依照需求產生數量):
product_1 = Product('iPhone 手機', 20000)
product_2 = Product('ASUS 手機', 3200)
# 印出產品1名稱
print(product_1.name)
# 印出產品2名稱
print(product_1.price)
# 打九折價格
print(product_1.get_discount_price(0.9))
# 印出產品2名稱
print(product_2.name)
# 印出產品2價格
print(product_2.price)
# 打九折價格
print(product_2.get_discount_price(0.9))
執行結果:
iPhone 手機
20000
18000.0
ASUS 手機
3200
2880.0